import Vue from 'vue'
import App from './App.vue'
import Vuex from 'vuex'
import { ADD, SUB } from './mution-type'
// 初始化仓库
// 1.创键仓库·
Vue.use(Vuex) // 安装 Vuex 到Vue上面 Vue.use 的时候 => Vuex 中的install 方法



let store = new Vuex.Store({
    state: {
        counter: 787,
    },
    actions: {
        asyncAdd: function(store, step) { //这里面的step由App.vue里面传入
            setTimeout(function() {
                    store.commit(ADD, step) //提交这个改变给下面的同步操作里面的ADD函数，参数是step
                },
                3000)
        }
    },
    mutations: {
        [ADD]: function(state, step) { //是上面传入的step
            console.log(step);
            state.counter += step;
        },
        [SUB]: function(state, payloads) { //这里传入的payloads=>payload: { step: -10,},
            console.log(payloads.payload.step); //-10
            state.counter += payloads.payload.step;
        }
    },
    //vuex里面的计算属性 getters
    getters: {
        isEvenOrOdd: function(state) {
            return state.counter % 2 === 0 ? "偶数" : "奇数";
        }
    }
});

// 3.导出仓库
export default store;